<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Guideline: 实现中的导入依赖关系 </title>
<meta name="uma.type" content="Guideline">
<meta name="uma.name" content="import_dependency_in_implementation">
<meta name="uma.presentationName" content="实现中的导入依赖关系 ">
<meta name="element_type" content="other">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="2.390918925290993E-305"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Guideline: 实现中的导入依赖关系 </td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/guidance.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">处理子系统之间的依赖关系是构造实现模型的一个重要方面。 本指南描述如何着手此工作。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/domains/implementation_442FA5B0.html" guid="_M6RHkN7IEdm8G6yT7-Wdqw">实现</a>
</li>
<li>
<a href="./../../../rup/workproducts/rup_implementation_model_5858DB65.html" guid="{157E9B67-C619-410D-A927-F2CD217BF8FE}">实现模型</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a><a key="分层（layering）" text="在实现中分层的指南" name="XE_layering__guidelines_for_layering_in_implementation" id="XE_layering__guidelines_for_layering_in_implementation" class="index"></a><a key="实现中的导入依赖关系（import-dependency in implementation）" text="指南" name="XE_import-dependency_in_implementation__guidelines_for" id="XE_import-dependency_in_implementation__guidelines_for" class="index"></a><a key="实现子系统（implementation subsystem）" text="处理实现子系统之间的导入依赖关系" name="XE_implementation_subsystem__handling_import_dependencies_between" id="XE_implementation_subsystem__handling_import_dependencies_between" class="index"></a> 
<h3>
    <a id="Explanation" name="Explanation"></a>说明
</h3>
<p>
    处理子系统之间的依赖关系是构造实现模型的一个重要方面。 如果客户端子系统导入提供端子系统，那么客户端子系统中的元素只能针对提供端子系统中的元素进行编译。
    要表达这样的依赖关系，则使用从一个子系统到另一个子系统的导入依赖关系，指出存在依赖关系的子系统。
</p>
<p class="exampleheading">
    示例：
</p>
<p class="example">
    以下组件图说明实现子系统之间的导入依赖关系。
</p>
<p class="picturecenter" align="center">
    <img height="203" alt="附带文本中描述的图。" src="./../../../rup/guidances/guidelines/resources/md_impi2.gif" width="217" />
</p>
<p class="picturetext">
    子系统“电话银行”具有对子系统“贸易服务”的导入依赖关系，这样就允许“电话银行”中的元素针对“贸易服务”中的公共（可视）元素进行编译。
</p>
<h3>
    <a id="Use" name="Use"></a>使用
</h3>
<h4>
    <a key="架构控制（architectural control）" text="实现中的导入依赖关系的指南" name="XE_architectural_control__guidelines_for_import-dependency_in_implementation" id="XE_architectural_control__guidelines_for_import-dependency_in_implementation" class="index"></a>
</h4>
<p>
    导入依赖关系的一个重要用途是控制子系统之间的可视性，并对实现者强制使用架构。 当在开发早期软件架构师定义导入依赖关系时，只允许实现者让他们的实现元素引用（编译）所导入子系统中的公共元素。
    控制导入有助于维护软件架构并避免不需要的依赖关系。
</p>
<h4>
    子系统可以按层来组织。
</h4>
<p>
    实现模型通常按层来组织。层数不是固定的，而是因情况而异的。下面是具有四层的一个典型架构：
</p>
<ul>
    <li>
        顶层，即<b>应用程序层</b>，包含应用程序专用的服务。
    </li>
    <li>
        第二层，即<b>业务专用层</b>，它包括在若干应用程序中使用的业务专用组件。
    </li>
    <li>
        <b>中间件层</b>，包含诸如 GUI 构建程序、到数据库管理系统的接口、独立于平台的操作系统服务等组件以及诸如电子表格和图编辑器等的 OLE 组件。
    </li>
    <li>
        底层，即<b>系统软件层</b>，包含诸如操作系统、与特定硬件的接口等的组件。
    </li>
</ul>
<p class="picturecenter" align="center">
    <img height="367" alt="附带文本中描述的图。" src="./../../../rup/guidances/guidelines/resources/md_impi3.gif" width="454" />
</p>
<p class="picturetext">
    用于银行系统的分层实现模型的示例。箭头显示子系统之间的导入依赖关系。
</p><br />
<br /></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
